/*********************************************************
          File Name:16.53.cpp
          Author: Abby Cin
          Mail: abbytsing@gmail.com
          Created Time: Sun 20 Dec 2015 04:23:42 PM CST
**********************************************************/

#include <iostream>

using std::ostream;
using std::cout;
using std::endl;

// more specific, to terminate recursion
template<typename T>
void print(const T& t)
{
        cout << t << endl;
}

template<typename T, typename ... Args>
void print(const T& t, const Args& ... rest)
{
        cout << t << endl;
        print(rest ...);
}

int main()
{
        print(1);
        print(1.1, "hi", "\t", '!');

        return 0;
}
